
 class ListNode {
    int val;
   ListNode next;
     ListNode() {

     }
     ListNode(int val) {
         this.val = val;
     }
    ListNode(int val, ListNode next) {
         this.val = val; this.next = next;
     }
}
public class Solution {
    public ListNode reverseList(ListNode head) {
        if (head == null) {
            return null;
        }
        ListNode pre = head;
        ListNode cur = head.next;
        pre.next = null;
        while (cur != null) {
            ListNode curNext = cur.next;
            cur.next = pre;
            pre = cur;
            cur = curNext;
        }

        return pre;
    }
}